package demo3;




import java.util.ArrayList;
import java.util.List;

/**
 * @基本功能:
 * @program:LinkedMan2
 * @author: 闫哥
 * @create:2024-01-10 12:01:34
 **/
public class MiOperation implements Operation{


    @Override
    public List<LinkMan> addLinkMan(LinkMan linkMan, List<LinkMan> linkMans) {
        // 假如一个手机号存在了，不能添加
        // 一个对象和list中的所有对象进行比较，本质就是一个对象和另一个对象比较，两个对象 是否为一个对象 需要重写 equas方法 和 hashCode方法
        if(!linkMans.contains(linkMan)){
            linkMans.add(linkMan);
        }else{
            System.out.println("该手机号码已存在，无需添加");
            return null;
        }

        return linkMans;
    }

    // 有可能有重名的人
    @Override
    public List<LinkMan> deleteLinkManByName(String name, List<LinkMan> linkMans) {
        // 从电话本中，将数据查询出来
        // 要删除的数据
        ArrayList<LinkMan> list = new ArrayList<>();
        // 将电话本中找到要删除的人，放入集合中
        for (LinkMan linkman:linkMans) {
            if(linkman.getName().equals(name)){
                list.add(linkman);
                //linkMans.remove(linkman);
            }
        }
        // 从集合中
        if(list.size() == 0){
            System.out.println("没有找到姓名为"+name+"的联系人....");
            return null;
        }else{
            linkMans.removeAll(list);
        }

        return linkMans;
    }

    @Override
    public List<LinkMan> deleteLinkManByNumber(String number, List<LinkMan> linkMans) {
        LinkMan _linkMan= null;
        // 将电话本中找到要删除的人，放入集合中
        for (LinkMan linkman:linkMans) {
            if(linkman.getPhoneNum().equals(number)){
                _linkMan = linkman;
                break;
            }
        }
        // 从集合中
        if(_linkMan != null){
            linkMans.remove(_linkMan);
        }else{
            System.out.println("该手机号码没找到....");
            return null;
        }

        return linkMans;
    }

    // 根据手机号码修改联系人的姓名
    @Override
    public List<LinkMan> setLinkMan(String name, String number, List<LinkMan> linkMans) {
        // 考虑什么情况下不成功
        boolean temp = false;
        for (LinkMan linkMan : linkMans) {
            if(linkMan.getPhoneNum().equals(number)){
                temp = true;
                linkMan.setName(name);
                break;
            }
        }
        return temp ? linkMans : null;
    }

    @Override
    public LinkMan searchLinkMan(String name, List<LinkMan> linkMans) {
        for (LinkMan linkMan : linkMans) {
            if(linkMan.getName().equals(name)){
                return linkMan;
            }
        }
        return null;
    }

    @Override
    public void searchA1l(List<LinkMan> linkMans) {

        for (LinkMan linkMan : linkMans) {
            System.out.println(linkMan);
        }
    }
}
